I2C總線通信技術(shù)在球形機(jī)器人雙DSP控制系統(tǒng)中的應(yīng)用
2014/3/13 14:36:55
當(dāng)前,機(jī)器視覺技術(shù)與運(yùn)動(dòng)控制技術(shù)正日益成為新一代智能機(jī)器人系統(tǒng)的熱門技術(shù),在反恐防爆與抗險(xiǎn)救災(zāi)、星際探測(cè)、地質(zhì)勘察等領(lǐng)域,機(jī)器視覺技術(shù)和運(yùn)動(dòng)控制技術(shù)都已得到大量應(yīng)用。然而,在很多情況下,這兩種技術(shù)的無縫聯(lián)結(jié)和有機(jī)融合卻并不理想,以至直接影響到它們的使用效果。筆者通過研究和探索發(fā)現(xiàn),機(jī)器人控制系統(tǒng)硬件平臺(tái)搭建得合理與否是影響上述技術(shù)協(xié)調(diào)工作的重要原因之一。
對(duì)于傳統(tǒng)的機(jī)器人控制系統(tǒng)來說,選用單一的核心芯片將難以讓其在機(jī)器視覺和運(yùn)動(dòng)控制兩方面都具有優(yōu)良的表現(xiàn),將會(huì)導(dǎo)致機(jī)器人綜合效能得不到充分發(fā)揮。眾多的集成芯片生產(chǎn)廠家意識(shí)到圖像處理和運(yùn)動(dòng)控制將會(huì)是未來半導(dǎo)體芯片的兩大重要應(yīng)用領(lǐng)域,都紛紛推出了基于上述兩種應(yīng)用的芯片。
筆者經(jīng)過系統(tǒng)研究認(rèn)識(shí)到,利用TI公司的C6000+C2000系列芯片搭建的機(jī)器人控制系統(tǒng)架構(gòu)方案可在機(jī)器視覺和運(yùn)動(dòng)控制之間找到了一個(gè)很好的結(jié)合點(diǎn)和平衡點(diǎn),能較好地起到功能互補(bǔ)的效果。但應(yīng)當(dāng)看到,C6000和C2000雖同屬TI公司的產(chǎn)品線,而兩者的體系架構(gòu)是不同的,在選擇雙DSP建立系統(tǒng)時(shí),如何處理它們之間的信號(hào)交互和協(xié)調(diào)工作是必須解決的首要問題。新型雙DSP架構(gòu)的信息交互機(jī)制的研究無論在學(xué)術(shù)上,還是在應(yīng)用上都具有重大意義。
球形機(jī)器人控制系統(tǒng)的整體架構(gòu)
筆者所在科研團(tuán)隊(duì)新近研制了一種新型球形機(jī)器人,該機(jī)器人能自動(dòng)掃描和跟蹤目標(biāo),并可根據(jù)圖像傳感器采集到的數(shù)據(jù)自主對(duì)目標(biāo)進(jìn)行識(shí)別和判斷,屬于典型的機(jī)器視覺和運(yùn)動(dòng)控制相互協(xié)調(diào)、并行工作的系統(tǒng)。在搭建該球形機(jī)器人控制系統(tǒng)時(shí),筆者采用了DSP C6000+C2000的雙核架構(gòu)。其中,C6000芯片主要用來對(duì)采集的現(xiàn)場(chǎng)圖像信息進(jìn)行分析和處理,完成目標(biāo)識(shí)別和判斷,并輸出處理結(jié)果;C2000芯片主要用來接收C6000芯片的處理結(jié)果,并完成相應(yīng)的任務(wù)管理,如視覺系統(tǒng)云臺(tái)的掃描運(yùn)動(dòng)、防御功能的實(shí)現(xiàn)等等。該機(jī)器人控制系統(tǒng)的硬件結(jié)構(gòu)如圖1所示。
在C6000芯片的選型上,選擇了TMS320DM6437(以下簡(jiǎn)稱DM6437)芯片,它是目前TI公司的TMS320C6000系列中性能較好的定點(diǎn)DSP之一。在C2000芯片的選擇上,選擇了TMS320F28015(以下簡(jiǎn)稱F28015)芯片,它是TI公司推出的低成本,低功耗,基于TMS320C28x內(nèi)核的定點(diǎn)控制器芯片。
DSP C6000+C2000的組合架構(gòu)形式,既解決了C6000控制能力稍顯不足的問題,又克服了C2000圖像處理功能薄弱的缺點(diǎn),可以最大程度地滿足球形機(jī)器人控制系統(tǒng)在綜合性能上的需求。但是,引入了強(qiáng)大的雙DSP系統(tǒng)后,隨之而來的便是兩者之間的通信問題,若處理不好,反而會(huì)適得其反。因此,雙DSP芯片間的通信接口的設(shè)計(jì)是保證整體機(jī)器人控制系統(tǒng)能完成高效協(xié)調(diào)工作的關(guān)鍵所在。
球形機(jī)器人控制系統(tǒng)雙處理器通信接口方案的選擇
筆者在研究過程中曾仔細(xì)分析過雙DSP架構(gòu)的硬件結(jié)構(gòu),發(fā)現(xiàn)C6000與C2000硬連接的接口方式可以多種多樣,如串口(UART)連接、USB連接、以太網(wǎng)(Ethernet)連接、HPI并行連接、I2C總線連接等。這些方式各有優(yōu)缺點(diǎn)和各自的適應(yīng)場(chǎng)合,須考慮自身功能和外部環(huán)境的需求來合理選擇。表1給出了上述幾種信號(hào)傳輸接口的各自性能比較。
從表1中可以看出,I2C為片內(nèi)總線接口,其接口連接簡(jiǎn)單可靠,非常適合于短距離高效通信。注意到DM6437和F28015片上都擁有I2C模塊,且將雙DSP做在同一塊PCB板上可以大大減小控制板卡的尺寸,降低電磁干擾,提高整個(gè)系統(tǒng)的可靠性。采用這樣的硬件設(shè)計(jì)思路后,片內(nèi)總線就應(yīng)該成為首選的通信方式了。而I2C通信是一種很簡(jiǎn)捷高效的片內(nèi)總線,其不占用芯片額外資源,除了通信可靠性高外,該接口的硬件設(shè)計(jì)難度也較小,因此,新型球形機(jī)器人控制系統(tǒng)最終確定I2C接口為雙DSP的通信接口方式。
球形機(jī)器人控制系統(tǒng)的接口設(shè)計(jì)
I2C總線介紹
I2C總線(Inter IC Bus)是一種用于IC器件之間連接的二進(jìn)制總線。它通過SDA(串行數(shù)據(jù)線)及SCI(并行時(shí)鐘線)兩根線,在連到總線上的器件之間傳送數(shù)據(jù)。它根據(jù)地址識(shí)別每個(gè)支持I2C接口的器件。
I2C總線的基本結(jié)構(gòu)
采用I2C總線標(biāo)準(zhǔn)的I2C器件,其內(nèi)部不僅有I2C接口電路,而且實(shí)現(xiàn)了將內(nèi)部各單元按功能劃分為若干相對(duì)應(yīng)獨(dú)立的模塊,通過軟件尋址實(shí)現(xiàn)片選,減少了器件片選線的連接。CPU不僅能通過指令將某個(gè)功能單元掛靠和摘離總線,還可對(duì)單元的工作狀況進(jìn)行檢測(cè),從而實(shí)現(xiàn)對(duì)硬件系統(tǒng)簡(jiǎn)單和靈活的擴(kuò)展和控制。I2C接口電路結(jié)構(gòu)如圖2所示。
I2C總線上的時(shí)鐘信號(hào)
在I2C總線上傳送信息時(shí)的時(shí)鐘同步信號(hào)是由掛接在SCL時(shí)鐘線上的所有器件的連接“與”完成的。SCL線上由高電平到低電平的跳變將影響到這些器件,一旦某個(gè)器件的時(shí)鐘信號(hào)下跳為低電平,將使SCL線上一直保持低電平,使SCL線上的所有器件開始低電平期。此時(shí),低電平周期短的器件的時(shí)鐘由低至高的跳變并不能影響SCL線的狀態(tài),于是這些器件將進(jìn)入高電平等待的狀態(tài)。
當(dāng)所有器件的時(shí)鐘信號(hào)都上跳為高電平時(shí),低電平期結(jié)束,SCL線被釋放返回高電平,即所有的器件都同時(shí)開始它們的高電平期。其后,第一個(gè)結(jié)束高電平期的器件又將SCL線拉成低電平。這樣就在SCL線上產(chǎn)生一個(gè)同步時(shí)鐘??梢?,時(shí)鐘低電平時(shí)間由時(shí)鐘低電平期到最長(zhǎng)的器件確定,而時(shí)鐘高電平期由時(shí)鐘高電平期最短的器件確定。
I2C總線上的數(shù)據(jù)傳輸
在數(shù)據(jù)傳送過程中,必須確認(rèn)數(shù)據(jù)傳送的開始和結(jié)束。在I2C總線技術(shù)規(guī)范中,開始和結(jié)束信號(hào)(也稱啟動(dòng)和停止信號(hào))的定義如圖3所示。
當(dāng)時(shí)鐘線SCL為高電平時(shí),數(shù)據(jù)線SDA由高電平跳變?yōu)榈碗娖蕉x為“開始”信號(hào);當(dāng)SCL線為高電平時(shí),SDA線發(fā)生低電平到高電平的跳變?yōu)椤敖Y(jié)束”信號(hào)。開始和結(jié)束信號(hào)都是由主器件產(chǎn)生。在開始信號(hào)以后,總線即被認(rèn)為處于忙狀態(tài);在結(jié)束信號(hào)以后的一段時(shí)間內(nèi),總線被認(rèn)為是空閑的。
I2C總線的數(shù)據(jù)傳送格式是:在I2C總線開始信號(hào)后,送出的第一個(gè)字節(jié)數(shù)據(jù)是用來選擇從器件地址的,其中前7位是地址碼,第8位是方向位(R/W)。方向位“0”表示發(fā)送,即主器件把信息寫到所選擇的從器件;方向位為“1”表示主器件將從從器件讀信息。開始信號(hào)后,系統(tǒng)中的各個(gè)器件將自己的地址和主器件送到總線上的地址進(jìn)行比較,如果與主器件發(fā)送到總線上的地址一致,則該器件即為主器件尋址的器件,其接收信息還是發(fā)送信息則由第8位(R/W)確定。
I2C接口的硬件設(shè)計(jì)
由于DM6437和F28015都支持I2C接口,這使得I2C接口的硬件設(shè)計(jì)變得非常簡(jiǎn)單,只需將各自的信號(hào)線和時(shí)鐘線對(duì)應(yīng)相連即可。雙DSP的I2C總線接口硬件連接圖如圖4所示。
各引腳連接說明如下:
① DM6437的M3和M2引腳分別對(duì)應(yīng)I2C_DATA和I2C_CLK,而F28015的GPIO32和GPIO33可以分別復(fù)用為I2C_DATA和I2C_CLK ??紤]到阻抗不匹配等因素會(huì)影響總線數(shù)據(jù)傳輸效果,因此還應(yīng)該在I2C_DATA和I2C_CLK 的直連線路上各串聯(lián)一個(gè)小電阻(R107和R108)。
② 由3.1.1節(jié)的I2C總線結(jié)構(gòu)介紹可知,I2C_DATA和I2C_CLK是雙向電路,必須都通過一個(gè)電流源或上拉電阻連接到正的電源電壓。由于DSP的輸出CMOS電平為3.3V,所以在硬件設(shè)計(jì)時(shí)將I2C_DATA和I2C_CLK總線通過上拉電R59和R60連接到了3.3V的Vcc電源上。
I2C總線通信的軟件設(shè)計(jì)
雙DSP系統(tǒng)通信思路
雙機(jī)通信軟件的設(shè)計(jì)問題涉及到DSP C6000(DM6437)和DSP C2000(F28015)兩部分的軟件設(shè)計(jì)。設(shè)計(jì)雙DSP系統(tǒng)的初期設(shè)想是,用DM6437來接收?qǐng)D像信息并進(jìn)行處理,將最終得到的處理結(jié)果傳送給F28015,F(xiàn)28015根據(jù)得到的處理結(jié)果來執(zhí)行相應(yīng)的電機(jī)控制及其他子任務(wù)??梢钥吹?,在這個(gè)通信過程中,DM6437是主機(jī),負(fù)責(zé)發(fā)送數(shù)據(jù),而F28015是從機(jī),負(fù)責(zé)接收數(shù)據(jù)并執(zhí)行相應(yīng)控制命令。但是應(yīng)注意到,在I2C總線通信中,主從機(jī)的地位并不是一直不變,可以根據(jù)需要隨時(shí)重新設(shè)定主機(jī)和從機(jī)。由于嵌入式系統(tǒng)的人機(jī)界面一般不大友好,想要觀察實(shí)驗(yàn)結(jié)果往往需要打印數(shù)據(jù)或者通過LED等指示裝置來體現(xiàn)。在本文中,考慮到DM6437芯片極其對(duì)應(yīng)的軟件開發(fā)系統(tǒng)CCS V3.3支持在線打印功能,因此,為了簡(jiǎn)化設(shè)計(jì),便于觀察,雙DSP的I2C通信可以這樣考慮:先讓DM6437發(fā)送一個(gè)數(shù)據(jù)到I2C總線上,并打印這個(gè)發(fā)送數(shù)據(jù)的相關(guān)信息,然后在F28015這一端接收數(shù)據(jù),如果接收到DM6437傳來的數(shù)據(jù),就將數(shù)據(jù)進(jìn)行一定的變換(例如乘以一個(gè)倍數(shù)),然后再通過I2C總線將變換后的數(shù)據(jù)發(fā)送給DM6437。DM6437接收返回的數(shù)據(jù)并打印返回?cái)?shù)據(jù)的相關(guān)信息。通過觀察打印信息,就可以很清楚地了解到I2C通信的實(shí)時(shí)效果。
DM6437的I2C通信軟件
根據(jù)所介紹的基本思路,可以設(shè)計(jì)出DM6437的I2C通信軟件的流程圖(圖5)。
F28015的I2C通信軟件
根據(jù)所介紹的基本思路,可以設(shè)計(jì)出F28015的I2C通信軟件的流程圖(圖6)。
結(jié)論
文中提出的TMS320DM6437+TMS320F28015的軟硬件設(shè)計(jì)方案在新型球形機(jī)器人控制系統(tǒng)中得到初步應(yīng)用,驗(yàn)證了理論設(shè)計(jì)的可行性和可靠性,實(shí)驗(yàn)結(jié)果表明接口數(shù)據(jù)讀寫高效可靠。本設(shè)計(jì)對(duì)以后其他雙核控制系統(tǒng)接口的設(shè)計(jì)與研究工作具有很好的參考價(jià)值。
對(duì)于傳統(tǒng)的機(jī)器人控制系統(tǒng)來說,選用單一的核心芯片將難以讓其在機(jī)器視覺和運(yùn)動(dòng)控制兩方面都具有優(yōu)良的表現(xiàn),將會(huì)導(dǎo)致機(jī)器人綜合效能得不到充分發(fā)揮。眾多的集成芯片生產(chǎn)廠家意識(shí)到圖像處理和運(yùn)動(dòng)控制將會(huì)是未來半導(dǎo)體芯片的兩大重要應(yīng)用領(lǐng)域,都紛紛推出了基于上述兩種應(yīng)用的芯片。
筆者經(jīng)過系統(tǒng)研究認(rèn)識(shí)到,利用TI公司的C6000+C2000系列芯片搭建的機(jī)器人控制系統(tǒng)架構(gòu)方案可在機(jī)器視覺和運(yùn)動(dòng)控制之間找到了一個(gè)很好的結(jié)合點(diǎn)和平衡點(diǎn),能較好地起到功能互補(bǔ)的效果。但應(yīng)當(dāng)看到,C6000和C2000雖同屬TI公司的產(chǎn)品線,而兩者的體系架構(gòu)是不同的,在選擇雙DSP建立系統(tǒng)時(shí),如何處理它們之間的信號(hào)交互和協(xié)調(diào)工作是必須解決的首要問題。新型雙DSP架構(gòu)的信息交互機(jī)制的研究無論在學(xué)術(shù)上,還是在應(yīng)用上都具有重大意義。
球形機(jī)器人控制系統(tǒng)的整體架構(gòu)
筆者所在科研團(tuán)隊(duì)新近研制了一種新型球形機(jī)器人,該機(jī)器人能自動(dòng)掃描和跟蹤目標(biāo),并可根據(jù)圖像傳感器采集到的數(shù)據(jù)自主對(duì)目標(biāo)進(jìn)行識(shí)別和判斷,屬于典型的機(jī)器視覺和運(yùn)動(dòng)控制相互協(xié)調(diào)、并行工作的系統(tǒng)。在搭建該球形機(jī)器人控制系統(tǒng)時(shí),筆者采用了DSP C6000+C2000的雙核架構(gòu)。其中,C6000芯片主要用來對(duì)采集的現(xiàn)場(chǎng)圖像信息進(jìn)行分析和處理,完成目標(biāo)識(shí)別和判斷,并輸出處理結(jié)果;C2000芯片主要用來接收C6000芯片的處理結(jié)果,并完成相應(yīng)的任務(wù)管理,如視覺系統(tǒng)云臺(tái)的掃描運(yùn)動(dòng)、防御功能的實(shí)現(xiàn)等等。該機(jī)器人控制系統(tǒng)的硬件結(jié)構(gòu)如圖1所示。
在C6000芯片的選型上,選擇了TMS320DM6437(以下簡(jiǎn)稱DM6437)芯片,它是目前TI公司的TMS320C6000系列中性能較好的定點(diǎn)DSP之一。在C2000芯片的選擇上,選擇了TMS320F28015(以下簡(jiǎn)稱F28015)芯片,它是TI公司推出的低成本,低功耗,基于TMS320C28x內(nèi)核的定點(diǎn)控制器芯片。
DSP C6000+C2000的組合架構(gòu)形式,既解決了C6000控制能力稍顯不足的問題,又克服了C2000圖像處理功能薄弱的缺點(diǎn),可以最大程度地滿足球形機(jī)器人控制系統(tǒng)在綜合性能上的需求。但是,引入了強(qiáng)大的雙DSP系統(tǒng)后,隨之而來的便是兩者之間的通信問題,若處理不好,反而會(huì)適得其反。因此,雙DSP芯片間的通信接口的設(shè)計(jì)是保證整體機(jī)器人控制系統(tǒng)能完成高效協(xié)調(diào)工作的關(guān)鍵所在。
球形機(jī)器人控制系統(tǒng)雙處理器通信接口方案的選擇
筆者在研究過程中曾仔細(xì)分析過雙DSP架構(gòu)的硬件結(jié)構(gòu),發(fā)現(xiàn)C6000與C2000硬連接的接口方式可以多種多樣,如串口(UART)連接、USB連接、以太網(wǎng)(Ethernet)連接、HPI并行連接、I2C總線連接等。這些方式各有優(yōu)缺點(diǎn)和各自的適應(yīng)場(chǎng)合,須考慮自身功能和外部環(huán)境的需求來合理選擇。表1給出了上述幾種信號(hào)傳輸接口的各自性能比較。
從表1中可以看出,I2C為片內(nèi)總線接口,其接口連接簡(jiǎn)單可靠,非常適合于短距離高效通信。注意到DM6437和F28015片上都擁有I2C模塊,且將雙DSP做在同一塊PCB板上可以大大減小控制板卡的尺寸,降低電磁干擾,提高整個(gè)系統(tǒng)的可靠性。采用這樣的硬件設(shè)計(jì)思路后,片內(nèi)總線就應(yīng)該成為首選的通信方式了。而I2C通信是一種很簡(jiǎn)捷高效的片內(nèi)總線,其不占用芯片額外資源,除了通信可靠性高外,該接口的硬件設(shè)計(jì)難度也較小,因此,新型球形機(jī)器人控制系統(tǒng)最終確定I2C接口為雙DSP的通信接口方式。
球形機(jī)器人控制系統(tǒng)的接口設(shè)計(jì)
I2C總線介紹
I2C總線(Inter IC Bus)是一種用于IC器件之間連接的二進(jìn)制總線。它通過SDA(串行數(shù)據(jù)線)及SCI(并行時(shí)鐘線)兩根線,在連到總線上的器件之間傳送數(shù)據(jù)。它根據(jù)地址識(shí)別每個(gè)支持I2C接口的器件。
I2C總線的基本結(jié)構(gòu)
采用I2C總線標(biāo)準(zhǔn)的I2C器件,其內(nèi)部不僅有I2C接口電路,而且實(shí)現(xiàn)了將內(nèi)部各單元按功能劃分為若干相對(duì)應(yīng)獨(dú)立的模塊,通過軟件尋址實(shí)現(xiàn)片選,減少了器件片選線的連接。CPU不僅能通過指令將某個(gè)功能單元掛靠和摘離總線,還可對(duì)單元的工作狀況進(jìn)行檢測(cè),從而實(shí)現(xiàn)對(duì)硬件系統(tǒng)簡(jiǎn)單和靈活的擴(kuò)展和控制。I2C接口電路結(jié)構(gòu)如圖2所示。
I2C總線上的時(shí)鐘信號(hào)
在I2C總線上傳送信息時(shí)的時(shí)鐘同步信號(hào)是由掛接在SCL時(shí)鐘線上的所有器件的連接“與”完成的。SCL線上由高電平到低電平的跳變將影響到這些器件,一旦某個(gè)器件的時(shí)鐘信號(hào)下跳為低電平,將使SCL線上一直保持低電平,使SCL線上的所有器件開始低電平期。此時(shí),低電平周期短的器件的時(shí)鐘由低至高的跳變并不能影響SCL線的狀態(tài),于是這些器件將進(jìn)入高電平等待的狀態(tài)。
當(dāng)所有器件的時(shí)鐘信號(hào)都上跳為高電平時(shí),低電平期結(jié)束,SCL線被釋放返回高電平,即所有的器件都同時(shí)開始它們的高電平期。其后,第一個(gè)結(jié)束高電平期的器件又將SCL線拉成低電平。這樣就在SCL線上產(chǎn)生一個(gè)同步時(shí)鐘??梢?,時(shí)鐘低電平時(shí)間由時(shí)鐘低電平期到最長(zhǎng)的器件確定,而時(shí)鐘高電平期由時(shí)鐘高電平期最短的器件確定。
I2C總線上的數(shù)據(jù)傳輸
在數(shù)據(jù)傳送過程中,必須確認(rèn)數(shù)據(jù)傳送的開始和結(jié)束。在I2C總線技術(shù)規(guī)范中,開始和結(jié)束信號(hào)(也稱啟動(dòng)和停止信號(hào))的定義如圖3所示。
當(dāng)時(shí)鐘線SCL為高電平時(shí),數(shù)據(jù)線SDA由高電平跳變?yōu)榈碗娖蕉x為“開始”信號(hào);當(dāng)SCL線為高電平時(shí),SDA線發(fā)生低電平到高電平的跳變?yōu)椤敖Y(jié)束”信號(hào)。開始和結(jié)束信號(hào)都是由主器件產(chǎn)生。在開始信號(hào)以后,總線即被認(rèn)為處于忙狀態(tài);在結(jié)束信號(hào)以后的一段時(shí)間內(nèi),總線被認(rèn)為是空閑的。
I2C總線的數(shù)據(jù)傳送格式是:在I2C總線開始信號(hào)后,送出的第一個(gè)字節(jié)數(shù)據(jù)是用來選擇從器件地址的,其中前7位是地址碼,第8位是方向位(R/W)。方向位“0”表示發(fā)送,即主器件把信息寫到所選擇的從器件;方向位為“1”表示主器件將從從器件讀信息。開始信號(hào)后,系統(tǒng)中的各個(gè)器件將自己的地址和主器件送到總線上的地址進(jìn)行比較,如果與主器件發(fā)送到總線上的地址一致,則該器件即為主器件尋址的器件,其接收信息還是發(fā)送信息則由第8位(R/W)確定。
I2C接口的硬件設(shè)計(jì)
由于DM6437和F28015都支持I2C接口,這使得I2C接口的硬件設(shè)計(jì)變得非常簡(jiǎn)單,只需將各自的信號(hào)線和時(shí)鐘線對(duì)應(yīng)相連即可。雙DSP的I2C總線接口硬件連接圖如圖4所示。
各引腳連接說明如下:
① DM6437的M3和M2引腳分別對(duì)應(yīng)I2C_DATA和I2C_CLK,而F28015的GPIO32和GPIO33可以分別復(fù)用為I2C_DATA和I2C_CLK ??紤]到阻抗不匹配等因素會(huì)影響總線數(shù)據(jù)傳輸效果,因此還應(yīng)該在I2C_DATA和I2C_CLK 的直連線路上各串聯(lián)一個(gè)小電阻(R107和R108)。
② 由3.1.1節(jié)的I2C總線結(jié)構(gòu)介紹可知,I2C_DATA和I2C_CLK是雙向電路,必須都通過一個(gè)電流源或上拉電阻連接到正的電源電壓。由于DSP的輸出CMOS電平為3.3V,所以在硬件設(shè)計(jì)時(shí)將I2C_DATA和I2C_CLK總線通過上拉電R59和R60連接到了3.3V的Vcc電源上。
I2C總線通信的軟件設(shè)計(jì)
雙DSP系統(tǒng)通信思路
雙機(jī)通信軟件的設(shè)計(jì)問題涉及到DSP C6000(DM6437)和DSP C2000(F28015)兩部分的軟件設(shè)計(jì)。設(shè)計(jì)雙DSP系統(tǒng)的初期設(shè)想是,用DM6437來接收?qǐng)D像信息并進(jìn)行處理,將最終得到的處理結(jié)果傳送給F28015,F(xiàn)28015根據(jù)得到的處理結(jié)果來執(zhí)行相應(yīng)的電機(jī)控制及其他子任務(wù)??梢钥吹?,在這個(gè)通信過程中,DM6437是主機(jī),負(fù)責(zé)發(fā)送數(shù)據(jù),而F28015是從機(jī),負(fù)責(zé)接收數(shù)據(jù)并執(zhí)行相應(yīng)控制命令。但是應(yīng)注意到,在I2C總線通信中,主從機(jī)的地位并不是一直不變,可以根據(jù)需要隨時(shí)重新設(shè)定主機(jī)和從機(jī)。由于嵌入式系統(tǒng)的人機(jī)界面一般不大友好,想要觀察實(shí)驗(yàn)結(jié)果往往需要打印數(shù)據(jù)或者通過LED等指示裝置來體現(xiàn)。在本文中,考慮到DM6437芯片極其對(duì)應(yīng)的軟件開發(fā)系統(tǒng)CCS V3.3支持在線打印功能,因此,為了簡(jiǎn)化設(shè)計(jì),便于觀察,雙DSP的I2C通信可以這樣考慮:先讓DM6437發(fā)送一個(gè)數(shù)據(jù)到I2C總線上,并打印這個(gè)發(fā)送數(shù)據(jù)的相關(guān)信息,然后在F28015這一端接收數(shù)據(jù),如果接收到DM6437傳來的數(shù)據(jù),就將數(shù)據(jù)進(jìn)行一定的變換(例如乘以一個(gè)倍數(shù)),然后再通過I2C總線將變換后的數(shù)據(jù)發(fā)送給DM6437。DM6437接收返回的數(shù)據(jù)并打印返回?cái)?shù)據(jù)的相關(guān)信息。通過觀察打印信息,就可以很清楚地了解到I2C通信的實(shí)時(shí)效果。
DM6437的I2C通信軟件
根據(jù)所介紹的基本思路,可以設(shè)計(jì)出DM6437的I2C通信軟件的流程圖(圖5)。
F28015的I2C通信軟件
根據(jù)所介紹的基本思路,可以設(shè)計(jì)出F28015的I2C通信軟件的流程圖(圖6)。
結(jié)論
文中提出的TMS320DM6437+TMS320F28015的軟硬件設(shè)計(jì)方案在新型球形機(jī)器人控制系統(tǒng)中得到初步應(yīng)用,驗(yàn)證了理論設(shè)計(jì)的可行性和可靠性,實(shí)驗(yàn)結(jié)果表明接口數(shù)據(jù)讀寫高效可靠。本設(shè)計(jì)對(duì)以后其他雙核控制系統(tǒng)接口的設(shè)計(jì)與研究工作具有很好的參考價(jià)值。
提交
查看更多評(píng)論
其他資訊
工業(yè)機(jī)器人控制系統(tǒng)的開放體系結(jié)構(gòu)
工業(yè)機(jī)器人離線編程及無碰撞路徑規(guī)劃系統(tǒng)的開發(fā)研究
工業(yè)機(jī)器人手臂結(jié)構(gòu)的有限元分析與研究
工業(yè)機(jī)器人通用控制器研究開發(fā)
工業(yè)機(jī)器人網(wǎng)絡(luò)控制與編程